Field of the Invention
The present invention relates to a data processing apparatus, input control apparatus, and control method for controlling input of data to a ring-shaped bus.
Description of the Related Art
A method of transferring packets in accordance with priority has conventionally been proposed as a method of performing efficient packet transfer in a data path control system in which a plurality of modules are connected to be communicable and perform parallel processing.
Japanese Patent Laid-Open No. 2010-217959 discloses a method of connecting modules by a ring bus, and transferring a data packet processed by each module to a module at the next stage to execute a series of processes. In the arrangement in Japanese Patent Laid-Open No. 2010-217959, after a given module ends processing, it sends, onto the ring bus, a signal containing an identifier for identifying the given module. A module which performs the next processing stores in advance the identifier of a module which executes immediately preceding processing, and when the signal contains the identifier, executes the processing. In Japanese Patent Laid-Open No. 2010-217959, when a module suspends processing, it transfers a signal containing information representing that the processing has been suspended. When this module receives, in response to the signal transmitted by it, a signal containing information representing that a succeeding module has suspended processing, it determines that a module which executes immediately succeeding processing cannot perform processing even if further information is transmitted, and temporarily stops transmission of information. This implements efficient packet transfer using a small storage capacity in distributed control.
When output of data is suspended in output on the ring bus, it is necessary to suppress or stop input to the ring bus. However, in the method in Japanese Patent Laid-Open No. 2010-217959, a given module only detects whether a stall has occurred in a module which executes processing immediately after processing by the given module. If output of data from the ring bus is suspended, the time corresponding to one round of the ring bus is necessary to detect by each module that data output from it has been suspended, and stop the output. A long time is required till the stop of input, and data are kept input till the stop of input. As a result, the number of stall packets increases, the transfer efficiency greatly decreases, and a deadlock may occur.